package inits

import (
	"doctor-srv/basic/config"
	"log"

	"github.com/spf13/viper"
)

// Init 初始化所有配置
func Init() {
	InitConfig()        // 初始化配置
	InitMySQL()         // 初始化MySQL
	InitRedis()         // 初始化Redis
	InitElasticsearch() // 初始化Elasticsearch
}

// InitConfig 初始化配置
func InitConfig() {
	viper.SetConfigName("dev")
	viper.SetConfigType("yaml")
	viper.AddConfigPath(".")
	viper.AddConfigPath("./")
	viper.AddConfigPath("../")
	viper.AddConfigPath("../../")

	if err := viper.ReadInConfig(); err != nil {
		log.Fatalf("Failed to read config file: %v", err)
	}

	config.Conf = &config.Config{}
	if err := viper.Unmarshal(config.Conf); err != nil {
		log.Fatalf("Failed to unmarshal config: %v", err)
	}

	log.Println("Config loaded successfully")
}

// InitMySQL 初始化MySQL数据库
func InitMySQL() {
	// MySQL初始化在mysql.go的init函数中自动执行
	log.Println("MySQL initialization completed")
}
